package com.copy.proxy.create;

import com.copy.mark.CloneType;
import com.copy.parse.transform.TypeTransform;
import com.copy.pojo.BeanMetaData;
import com.copy.pojo.BeanMethod;

import java.lang.reflect.Field;

public interface CreateProxyStrategy  {
    public <T>T createProxyBean (Class<T> cls, BeanMetaData beanMetaData) throws Exception;
    public void cloneProperty(Object targetBean, Field targetFiled, Object value, CloneType cloneType,boolean openForceCast) throws IllegalAccessException, Exception;
    public Object transform(Class<TypeTransform> transformClass, Object oldValue) throws Exception;
    public <T> T getProxyBean(Class<T> cls);
}
